#ifndef AGENT_H_
#define AGENT_H_
#include "BuySellIndicator.h"
#include "User.h"
#include "BuyEvent.h"
#include "SellEvent.h"
#include <vector>
using namespace std;

class Agent : public User
{

private:

	vector<BuySellIndicator*> _indicator;
	int _amountToBuy;
	vector<double> _energyValue;
	Poco::DateTime *  _date;

	static std::string toStr(Poco::DateTime time);

public:

	Agent();
	Agent(int newId, Bank& newBank, int amount, double firstYitra);

	void countUp(ass2::eEnergy type);
	void countDown(ass2::eEnergy type);
	SellEvent* generateSellEvent(int type);
	BuyEvent* generateBuyEvent(int type);
	std::vector<BuyEvent*> generateBuyEvents();
	std::vector<SellEvent*> generateSellEvents();

	void setDate(Poco::DateTime * date);
	void setNewValues(std::vector<double> energyValue);
	virtual ~Agent();
};

#endif /*AGENT_H_*/
